from langchain_core.documents import Document
from langchain_chroma import Chroma
from langchain_community.embeddings import ZhipuAIEmbeddings

documents = [
    Document(
        page_content="狗是伟大的伴侣，以其忠诚和友好而闻名。",
        metadata={"source": "mammal-pets-doc"}
    ),
    Document(
        page_content="猫是独立的动物，通常喜欢自己的空间。",
        metadata={"source": "mammal-pets-doc"}
    ),
    Document(
        page_content="金鱼是初学者的流行宠物，需要相对简单的护理。",
        metadata={"source": "fish-pets-doc"}
    ),
    Document(
        page_content="鹦鹉是聪明的鸟类，能够模仿人类的语言。",
        metadata={"source": "bird-pets-doc"}
    ),
    Document(
        page_content="兔子是社交动物，需要足够的空间跳跃。",
        metadata={"source": "mammal-pets-doc"}
    )
]

# 构建词嵌入工具
embedding = ZhipuAIEmbeddings()

# 将文本进行对应的词向量化 --> chroma 词向量数据库
chroma = Chroma.from_documents(
    documents=documents,
    embedding=embedding
)
# "加菲猫" 这个词先向量化，然后在词向量库中找出与之相近的内容
result = chroma.similarity_search_with_score("加菲猫")
print(result)